package servlets;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import domein.Dienst;
import domein.Factuur;
import domein.Klant;

@WebServlet(name="FactuurServlet", urlPatterns="/medewerker/FactuurServlet.do")
public class FactuurServlet extends HttpServlet {

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */

	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		RequestDispatcher rd = null;
		if(req.getParameter("factuurIndex") != null){
			Integer factuurIndex = Integer.parseInt(req.getParameter("factuurIndex"));
			Klant klant = (Klant)req.getSession().getAttribute("selKlant");

			Factuur factuur = klant.getFacturen().get(factuurIndex);
			if(factuur != null && req.getSession().getAttribute("afgenomenDiensten") != null){
				for(Dienst dienst: (ArrayList<Dienst>)req.getSession().getAttribute("afgenomenDiensten")){
					factuur.addDienst(dienst);
				}
				rd = req.getRequestDispatcher("/medewerker/facturen.jsp"); 
				req.setAttribute("factuur", factuur);
				req.getSession().setAttribute("afgenomenDiensten", new ArrayList<Dienst>());
			}else{
				rd = req.getRequestDispatcher("/medewerker/start-factuur.jsp"); 
				req.setAttribute("error", "Geen diensten");
			}
		}
		else{
			rd = req.getRequestDispatcher("/medewerker/start-factuur.jsp"); 
			req.setAttribute("error", "Geen factuur geselecteerd");
		}
		rd.forward(req, resp);
	}


	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		RequestDispatcher rd = null;
		rd = req.getRequestDispatcher("/medewerker/facturen.jsp");
		Klant klant = (Klant)req.getSession().getAttribute("selKlant");
		if (klant == null || req.getSession().getAttribute("afgenomenDiensten") == null){
			rd = req.getRequestDispatcher("/medewerker/start-factuur.jsp");
		}
		else{
			Factuur factuur1 = new Factuur(Calendar.getInstance());
			for(Dienst dienst: (ArrayList<Dienst>)req.getSession().getAttribute("afgenomenDiensten")){
				factuur1.addDienst(dienst);
			}
			req.getSession().setAttribute("afgenomenDiensten", new ArrayList<Dienst>());
			req.setAttribute("factuur", factuur1);
			klant.addFactuur(factuur1);
		}	rd.forward(req, resp);
	}
}
